﻿using System.Collections;
using System.Collections.Generic;

namespace Neturion.Dados
{
    public class ContaContabil
    {
        private int _contaContabilId;
        private string _codigo;
        private string _descricao;
        private EnumTipoConta _enumTipoConta;
        private EnumTipoOperacionalidade _enumTipoOperacionalidade;
        private TipoContaContabil _tipoContaContabil;
        private IList _listaContasContabils;

        public ContaContabil()
        {
            _listaContasContabils = new List<ContaContabil>();
        }

        public virtual int ContaContabilId
        {
            get { return _contaContabilId; }
            set { _contaContabilId = value; }
        }

        public virtual string Codigo
        {
            get { return _codigo; }
            set { _codigo = value; }
        }

        public virtual string Descricao
        {
            get { return _descricao; }
            set { _descricao = value; }
        }

        public virtual EnumTipoConta EnumTipoConta
        {
            get { return _enumTipoConta; }
            set { _enumTipoConta = value; }
        }

        public virtual EnumTipoOperacionalidade EnumTipoOperacionalidade
        {
            get { return _enumTipoOperacionalidade; }
            set { _enumTipoOperacionalidade = value; }
        }

        public virtual TipoContaContabil TipoContaContabil
        {
            get { return _tipoContaContabil; }
            set { _tipoContaContabil = value; }
        }

        public virtual IList ListaContasContabils
        {
            get { return _listaContasContabils; }
            set { _listaContasContabils = value; }
        }

        public virtual void AdicionarContaContabilFilho(ContaContabil contaContabil)
        {
            ListaContasContabils.Add(contaContabil);
        }

        public virtual void RemoverContaContabilFilho(ContaContabil contaContabil)
        {
            ListaContasContabils.Remove(contaContabil);
        }
    }
}